#ifndef QUEUE_H
#define QUEUE_H
#include <my_head.h>
#define ELEMENTYPE client_status*

/*
//当前用户信息
typedef struct {
    char user_name[1000];    //用户名
    char user_id[1000];      //用户id
    char cur_path[2000];      //用户当前路径
    char root_path[2000];     //用户根路径
    
    int net_fd;         //客户端的通信描述符                        
} UserInf;
*/

typedef struct client_status{
    char user_name[20];  //用户名
    int user_len;  //用户名长度
    char password[20000]; //密码
    int islogin;  //登录状态
    char root_path[2000];
    char path[2000]; //当前路径
    char path_last[2000];//切割空格后的数据
    int net_fd;
}client_status;

typedef struct Node_s{
    ELEMENTYPE data;
    struct Node_s *next;
} Node_t;

typedef struct Queue_s{
    Node_t *head, *tail;
    int size;
} Queue_t;

//
Queue_t* createQueue();
//
bool destroyQueue(Queue_t *q);
//
bool isEmpty(Queue_t *q);
//
bool push(Queue_t *q, ELEMENTYPE data);
//
ELEMENTYPE pop(Queue_t *q);

#endif
